Apache ANT-এ Unit Testing এবং Code Coverage গুরুত্বপূর্ণ অংশ, যা প্রজেক্টের কোডের গুণমান নিশ্চিত করতে সাহায্য করে। ANT-এর মাধ্যমে আপনি আপনার কোডের টেস্ট রান করতে পারেন এবং টেস্ট কভারেজ বা কোড কভারেজ ট্র্যাক করতে পারেন। এই প্রক্রিয়া আপনাকে আপনার অ্যাপ্লিকেশনটি পরীক্ষা করার সুযোগ দেয় এবং নিশ্চিত করে যে কোডে কোন গুরুত্বপূর্ণ লজিকের পরীক্ষা হয়নি।
ANT-এ ইউনিট টেস্টিং এবং কোড কভারেজের জন্য বেশ কিছু টুল ইন্টিগ্রেট করা যেতে পারে, যেমন JUnit, Emma, Cobertura, এবং JaCoCo। এই টুলগুলি ANT টাস্ক হিসেবে সংজ্ঞায়িত করা যায় এবং ব্যবহার করা যায়।
ANT-এ JUnit টেস্ট চালানোর জন্য junit
টাস্ক ব্যবহার করা হয়। এটি কোডের ইউনিট টেস্ট রান করতে সহায়ক এবং আপনাকে টেস্ট ফলাফল রিপোর্ট করতে সক্ষম করে।
JUnit টাস্ক ব্যবহারের জন্য junit
টাস্কফাইল তৈরি করুন:
প্রথমে, আপনাকে আপনার build.xml
ফাইলে JUnit টাস্কটি যোগ করতে হবে।
<project name="UnitTesting" basedir=".">
<!-- JUnit Task Definition -->
<taskdef name="junit"
classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask"
classpath="libs/junit.jar"/>
<!-- Unit Test Target -->
<target name="run-tests">
<mkdir dir="test-reports"/>
<junit printsummary="yes" haltonfailure="yes">
<test name="com.example.MyTestClass"/>
<formatter type="xml" usefile="true" />
<batchtest fork="yes">
<fileset dir="test-classes">
<include name="**/*Test.class"/>
</fileset>
</batchtest>
</junit>
</target>
</project>
এখানে:
<taskdef>
: JUnit টাস্কটি ANT-এ যুক্ত করা হচ্ছে।<junit>
: JUnit টেস্ট রান করার জন্য ব্যবহার করা হচ্ছে।<test>
: একটি নির্দিষ্ট টেস্ট ক্লাসের নাম দিয়ে একক টেস্ট চালানো হচ্ছে।<batchtest>
: একাধিক টেস্ট ক্লাস একসাথে রান করার জন্য ব্যবহৃত হচ্ছে।JUnit টেস্ট ফাইল উদাহরণ:
উদাহরণস্বরূপ, একটি সাধারণ JUnit টেস্ট ক্লাস MyTestClass.java
:
import org.junit.Test;
import static org.junit.Assert.*;
public class MyTestClass {
@Test
public void testAdd() {
int result = 2 + 3;
assertEquals(5, result);
}
}
Code coverage হল একটি পরিমাপ যা জানায় কতটুকু কোড টেস্ট কভার করেছে। কোড কভারেজের জন্য জনপ্রিয় টুলগুলি হলো Emma, Cobertura, এবং JaCoCo। এই টুলগুলি ANT টাস্ক হিসেবে ইন্টিগ্রেট করা যায়।
Emma একটি ওপেন সোর্স টুল যা কোড কভারেজ পরিমাপ করতে ব্যবহৃত হয়। ANT-এ Emma টাস্ক ব্যবহার করে আপনি কোড কভারেজ দেখতে পারেন।
Emma টাস্ক সংজ্ঞায়িত করা:
<project name="CodeCoverage" basedir=".">
<taskdef name="emma"
classname="emma.ant.AntTask"
classpath="libs/emma.jar"/>
<!-- Emma Coverage Target -->
<target name="run-coverage">
<emma enable="true">
<instrument todir="instrumented-classes">
<fileset dir="build/classes"/>
</instrument>
<report format="html" outfile="coverage-report">
<fileset dir="instrumented-classes"/>
</report>
</emma>
</target>
</project>
এখানে:
<emma>
: Emma টুলটি চালানোর জন্য ব্যবহৃত হয়।<instrument>
: কোড ইনস্ট্রুমেন্টেশন টুলের মাধ্যমে কোডে কভারেজ ডেটা যোগ করে।<report>
: কোড কভারেজ রিপোর্ট তৈরি করে (HTML, XML ইত্যাদি ফরম্যাটে)।Cobertura একটি ওপেন সোর্স টুল যা Java কোডের কভারেজ পরিমাপ করতে ব্যবহৃত হয়। ANT-এ Cobertura ইন্টিগ্রেট করার জন্য কোডের ইনস্ট্রুমেন্টেশন এবং কভারেজ রিপোর্ট তৈরি করা যায়।
Cobertura টাস্ক সংজ্ঞায়িত করা:
<project name="CoberturaExample" basedir=".">
<taskdef resource="com/cobertura/ant/taskdefs.properties"/>
<target name="run-coverage">
<mkdir dir="coverage-report"/>
<cobertura-instrument destdir="instrumented-classes">
<fileset dir="build/classes"/>
</cobertura-instrument>
<junit printsummary="yes">
<batchtest>
<fileset dir="instrumented-classes"/>
</batchtest>
</junit>
<cobertura-report format="html" destdir="coverage-report">
<fileset dir="instrumented-classes"/>
</cobertura-report>
</target>
</project>
JaCoCo একটি উন্নত এবং জনপ্রিয় কোড কভারেজ টুল। এটি ANT-এ সহজেই ইন্টিগ্রেট করা যায়।
JaCoCo টাস্ক সংজ্ঞায়িত করা:
<project name="JaCoCoExample" basedir=".">
<taskdef name="jacoco" classname="org.jacoco.ant.Task">
<classpath>
<pathelement location="libs/jacocoant.jar"/>
</classpath>
</taskdef>
<target name="run-tests">
<jacoco:instrument destdir="instrumented-classes">
<fileset dir="build/classes"/>
</jacoco:instrument>
<junit printsummary="true">
<batchtest>
<fileset dir="instrumented-classes"/>
</batchtest>
</junit>
<jacoco:report>
<executiondata>
<file file="coverage.exec"/>
</executiondata>
<structure>
<classfiles>
<fileset dir="instrumented-classes"/>
</classfiles>
</structure>
<html destdir="coverage-report"/>
</jacoco:report>
</target>
</project>
এই টুলগুলি আপনাকে আপনার কোডের গুণমান এবং নির্ভুলতা নিশ্চিত করতে সাহায্য করে, যা উন্নত সফটওয়্যার ডেভেলপমেন্ট প্রক্রিয়ার অংশ।
Apache ANT-এর মাধ্যমে আপনি JUnit এবং TestNG টেস্ট ফ্রেমওয়ার্কের ইন্টিগ্রেশন করতে পারেন, যা আপনাকে আপনার কোডের অটোমেটেড টেস্টিং চালানোর জন্য ব্যবহৃত হবে। ANT-এ JUnit এবং TestNG টেস্ট রান করতে গেলে আপনি বিশেষভাবে নির্ধারিত টাস্ক ব্যবহার করবেন যা ANT বিল্ড স্ক্রিপ্টে অন্তর্ভুক্ত করতে হবে।
এখানে JUnit এবং TestNG টেস্ট ফ্রেমওয়ার্ক ইন্টিগ্রেশনের বিস্তারিত বর্ণনা দেয়া হলো:
JUnit একটি জনপ্রিয় টেস্টিং ফ্রেমওয়ার্ক যা Java প্রোগ্রামিং ভাষার জন্য ব্যবহৃত হয়। Apache ANT-এ JUnit টেস্ট রান করার জন্য junit
টাস্ক ব্যবহার করা হয়।
প্রথমে, আপনাকে ANT-এ junit
টাস্ক ব্যবহার করার জন্য JUnit JAR ফাইলটি classpath-এ অন্তর্ভুক্ত করতে হবে।
build.xml
ফাইলের উদাহরণ:<?xml version="1.0" encoding="UTF-8"?>
<project name="JUnitIntegration" default="test" basedir=".">
<!-- Path to the JUnit JAR -->
<path id="junit.classpath">
<fileset dir="libs">
<include name="junit-4.x.x.jar"/>
</fileset>
</path>
<!-- Test target -->
<target name="test">
<junit printsummary="true">
<classpath>
<path refid="junit.classpath"/>
<pathelement path="build/classes"/>
</classpath>
<test name="com.example.TestClass"/>
</junit>
</target>
</project>
<path id="junit.classpath">
: JUnit JAR ফাইলটি libs
ডিরেক্টরি থেকে classpath-এ যুক্ত করা হয়েছে।<junit>
: এটি JUnit টেস্ট রান করার জন্য ব্যবহৃত টাস্ক।printsummary="true"
: টেস্টের সারাংশ প্রদর্শন করবে।<classpath>
: টেস্টের জন্য প্রয়োজনীয় classpath এখানে নির্ধারণ করা হচ্ছে।<test name="com.example.TestClass"/>
: এখানে com.example.TestClass
ক্লাসের টেস্ট রান করতে বলা হচ্ছে।ant test
এটি JUnit টেস্ট চালাবে এবং টেস্টের ফলাফল কনসোলে দেখাবে।
TestNG একটি আরও শক্তিশালী টেস্টিং ফ্রেমওয়ার্ক যা JUnit-এর চেয়ে বেশি ফিচার এবং কনফিগারেশন অপশন দেয়। Apache ANT-এ TestNG টেস্ট রান করার জন্য testng
টাস্ক ব্যবহার করা হয়।
প্রথমে, আপনাকে TestNG JAR ফাইলটি classpath-এ অন্তর্ভুক্ত করতে হবে।
build.xml
ফাইলের উদাহরণ:<?xml version="1.0" encoding="UTF-8"?>
<project name="TestNGIntegration" default="test" basedir=".">
<!-- Path to TestNG JAR -->
<path id="testng.classpath">
<fileset dir="libs">
<include name="testng-7.x.x.jar"/>
</fileset>
</path>
<!-- Test target -->
<target name="test">
<taskdef resource="org/testng/ant/testng.properties"/>
<testng classpathref="testng.classpath">
<suite-fileset dir="test" includes="**/*Test.xml"/>
</testng>
</target>
</project>
<path id="testng.classpath">
: TestNG JAR ফাইলটি libs
ডিরেক্টরি থেকে classpath-এ যুক্ত করা হয়েছে।<taskdef resource="org/testng/ant/testng.properties"/>
: এটি TestNG টাস্কটি ডিফাইন করতে ব্যবহৃত হয়। TestNG-এর built-in ANT টাস্ক ডেফিনিশন (testng.properties
) এখানে ব্যবহৃত হচ্ছে।<testng>
: এটি TestNG টেস্ট রান করার জন্য ব্যবহৃত টাস্ক।classpathref="testng.classpath"
: TestNG টাস্কের জন্য classpath উল্লেখ করা হচ্ছে।<suite-fileset>
: TestNG suite ফাইল বা XML ফাইলের পাথ নির্ধারণ করা হচ্ছে (যেমন test/**Test.xml
), যা টেস্ট গুলি চালাবে।ant test
এটি TestNG টেস্ট চালাবে এবং TestNG XML ফাইল অনুযায়ী টেস্টের ফলাফল প্রদর্শন করবে।
Feature | JUnit | TestNG |
---|---|---|
Configuration | খুব সহজ কনফিগারেশন | আরো ফ্লেক্সিবল কনফিগারেশন এবং অ্যাডভান্স অপশন |
Parallel Test Execution | সমর্থন নেই | সমর্থন রয়েছে |
Test Groups | নেই | টেস্ট গ্রুপের মাধ্যমে টেস্ট কন্ট্রোল করা যায় |
Data Providers | নেই | @DataProvider এর মাধ্যমে ডাটা পাস করা যায় |
Test Dependencies | সমর্থন নেই | টেস্ট ডিপেন্ডেন্সি সমর্থন করে |
printsummary="true"
ব্যবহার করে একটি সিম্পল আউটপুট দেখতে পারেন।junit
টাস্ক ব্যবহার করে টেস্ট রানের জন্য classpath এবং টেস্ট ক্লাস নির্ধারণ করতে হয়।testng
টাস্ক ব্যবহার করে TestNG suite XML ফাইল এবং classpath ব্যবহার করে টেস্ট রানের জন্য কনফিগার করতে হয়।এই ইন্টিগ্রেশন আপনাকে ANT দিয়ে আপনার জাভা প্রজেক্টের টেস্টিং কার্যক্রম পরিচালনা করতে সহায়তা করবে।
Apache ANT একটি শক্তিশালী বিল্ড টুল যা শুধুমাত্র কোড কম্পাইল এবং প্যাকেজিংয়ের জন্য ব্যবহৃত হয় না, বরং এটি unit testing এবং build automation-এর জন্যও ব্যাপকভাবে ব্যবহৃত হয়। ANT এর সাহায্যে আপনি আপনার প্রজেক্টের বিল্ড প্রক্রিয়ার মধ্যে unit testing অন্তর্ভুক্ত করতে পারেন এবং এটি স্বয়ংক্রিয়ভাবে করতে পারেন।
এই গাইডে আমরা আলোচনা করব কিভাবে ANT ব্যবহার করে unit testing পরিচালনা এবং build automation সেটআপ করা যায়।
Apache ANT দিয়ে unit test পরিচালনা করতে সাধারণত JUnit ব্যবহৃত হয়। JUnit হল একটি জনপ্রিয় unit testing ফ্রেমওয়ার্ক যা Java প্রোগ্রামিং ভাষায় লেখা কোডের জন্য ব্যবহৃত হয়। ANT-এ JUnit টাস্ক ব্যবহার করে আপনি unit tests রান করতে পারেন এবং ফলাফল দেখাতে পারেন।
JUnit টাস্কটি ANT এর বিল্ড ফাইলে অন্তর্ভুক্ত করতে হয়, এবং এরপর আপনি JUnit টেস্ট ক্লাসগুলি রান করতে পারেন। এর জন্য JUnit jar ফাইল আপনার classpath-এ অন্তর্ভুক্ত থাকতে হবে।
JUnit টাস্ক কাজ করার জন্য JUnit এবং Ant-এর ant-junit
লাইব্রেরি প্রয়োজন। JUnit এর jar ফাইল সাধারণত আপনার প্রজেক্টের lib
ডিরেক্টরিতে থাকতে হবে অথবা classpath-এ অন্তর্ভুক্ত করা হতে পারে।
এখানে একটি উদাহরণ দেখানো হলো যেখানে ANT দিয়ে JUnit টেস্ট রান করা হবে।
build.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<project name="JUnitExample" default="test" basedir=".">
<!-- Define classpath for JUnit -->
<path id="junit.classpath">
<fileset dir="lib">
<include name="junit-4.13.2.jar"/>
</fileset>
</path>
<!-- Target to compile Java classes -->
<target name="compile">
<mkdir dir="build/classes"/>
<javac srcdir="src" destdir="build/classes" classpathref="junit.classpath"/>
</target>
<!-- Target to run JUnit tests -->
<target name="test" depends="compile">
<mkdir dir="build/test-results"/>
<junit printsummary="yes" haltonfailure="yes">
<!-- Test classes location -->
<classpath>
<path refid="junit.classpath"/>
<pathelement location="build/classes"/>
</classpath>
<!-- Specify the test class -->
<test name="com.example.TestExample"/>
<formatter type="plain"/>
</junit>
</target>
</project>
junit.classpath
-এ junit-4.13.2.jar
যোগ করা হয়েছে।compile
টার্গেট Java ক্লাস কম্পাইল করে build/classes
ডিরেক্টরিতে রাখে।test
টার্গেট compile
টার্গেটের ওপর নির্ভরশীল, তাই প্রথমে কোড কম্পাইল হবে এবং পরে JUnit টেস্ট চালানো হবে।<junit>
ট্যাগটি JUnit টেস্ট চালাতে ব্যবহৃত হয় এবং haltonfailure="yes"
দিয়ে যদি কোনো টেস্ট ফেইল হয়, তবে বিল্ডও ফেইল করবে।printsummary="yes"
দিয়ে টেস্টের সারাংশ কমান্ড লাইনে প্রিন্ট করা হবে।<test name="com.example.TestExample"/>
ট্যাগে টেস্ট ক্লাসের পূর্ণ নাম উল্লেখ করা হয়েছে, যার মধ্যে আপনার unit tests থাকবে।এই বিল্ড ফাইলে ব্যবহার করার জন্য একটি সাধারণ JUnit টেস্ট ক্লাস নিচে দেওয়া হলো:
TestExample.java
:
package com.example;
import org.junit.Test;
import static org.junit.Assert.*;
public class TestExample {
@Test
public void testAdd() {
int a = 5;
int b = 10;
int sum = a + b;
assertEquals(15, sum); // Check if sum is 15
}
@Test
public void testSubtract() {
int a = 10;
int b = 5;
int difference = a - b;
assertEquals(5, difference); // Check if difference is 5
}
}
এখানে দুটি মৌলিক টেস্ট করা হয়েছে:
ANT এর সাহায্যে build automation করার মাধ্যমে আপনি একাধিক টাস্ক একযোগে সম্পন্ন করতে পারবেন, যেমন কোড কম্পাইল করা, টেস্ট রান করা, এবং বিল্ড তৈরি করা।
একটি পূর্ণাঙ্গ উদাহরণ যেটিতে unit test এবং বিল্ড অটোমেশন সমন্বিত থাকবে:
build.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<project name="FullBuildExample" default="full-build" basedir=".">
<!-- Classpath for JUnit -->
<path id="junit.classpath">
<fileset dir="lib">
<include name="junit-4.13.2.jar"/>
</fileset>
</path>
<!-- Clean target to delete previous build outputs -->
<target name="clean">
<delete dir="build"/>
</target>
<!-- Compile Java source code -->
<target name="compile" depends="clean">
<mkdir dir="build/classes"/>
<javac srcdir="src" destdir="build/classes" classpathref="junit.classpath"/>
</target>
<!-- Run Unit Tests -->
<target name="test" depends="compile">
<mkdir dir="build/test-results"/>
<junit printsummary="yes" haltonfailure="yes">
<classpath>
<path refid="junit.classpath"/>
<pathelement location="build/classes"/>
</classpath>
<test name="com.example.TestExample"/>
<formatter type="plain"/>
</junit>
</target>
<!-- Create JAR file -->
<target name="create-jar" depends="test">
<mkdir dir="build/jar"/>
<jar destfile="build/jar/myproject.jar" basedir="build/classes"/>
</target>
<!-- Full build target -->
<target name="full-build" depends="create-jar">
<echo message="Build complete!" />
</target>
</project>
build/classes
ডিরেক্টরিতে রাখা হয়।compile
টার্গেটের পর টেস্ট রান করা হয়।junit
টাস্ক এবং taskdef
ব্যবহার করা হয়।এইভাবে, ANT দিয়ে আপনি একটি পূর্ণাঙ্গ build automation পদ্ধতি তৈরি করতে পারেন, যা আপনার কোডের একাধিক ধাপ সম্পন্ন করতে সক্ষম।
Apache ANT ব্যবহার করে test reports এবং code coverage রিপোর্ট তৈরি করা একটি সাধারণ প্রক্রিয়া যা আপনার বিল্ড প্রক্রিয়াকে আরও কার্যকরী এবং স্বচ্ছ করে তোলে। এখানে আমরা JUnit টেস্ট রিপোর্ট এবং code coverage রিপোর্ট তৈরি করার জন্য যে টুলগুলো এবং কৌশলগুলো ব্যবহার করা যায়, তা আলোচনা করব।
JUnit টেস্ট রিপোর্ট তৈরি করা ANT-এর মাধ্যমে খুবই সহজ এবং কার্যকরী। আপনি যদি JUnit টেস্ট ব্যবহার করেন, তবে ANT junit
টাস্কটি ব্যবহার করে টেস্ট রিপোর্ট তৈরি করতে সক্ষম হবে।
junit
টাস্ক ব্যবহার করে আপনি টেস্ট চালাতে পারেন এবং রিপোর্ট তৈরি করতে পারেন।<project name="JUnitTestExample" default="run-tests">
<!-- ক্লাসপাথ নির্দিষ্ট করা -->
<path id="test.classpath">
<fileset dir="lib">
<include name="*.jar"/>
</fileset>
</path>
<!-- টার্গেট নির্ধারণ -->
<target name="run-tests">
<junit printsummary="true" haltonerror="yes" haltonfailure="yes">
<classpath refid="test.classpath"/>
<test name="com.example.tests.MyTestClass"/>
<formatter type="xml" usefile="true"/>
</junit>
</target>
</project>
এখানে:
junit
টাস্কটি টেস্ট ক্লাস চালাবে।printsummary="true"
টেস্টের সংক্ষিপ্ত সারাংশ দেখাবে।haltonerror="yes"
এবং haltonfailure="yes"
এর মাধ্যমে যদি কোনো টেস্ট ব্যর্থ হয়, তবে বিল্ড বন্ধ হয়ে যাবে।formatter
ট্যাগটি রিপোর্ট আউটপুট ফরম্যাট নির্ধারণ করে। এখানে XML ফরম্যাটে রিপোর্ট তৈরি করা হচ্ছে।<testsuite errors="0" failures="1" name="MyTestClass" tests="3" time="0.1">
<testcase classname="com.example.tests.MyTestClass" name="testMethod1" time="0.02"/>
<testcase classname="com.example.tests.MyTestClass" name="testMethod2" time="0.03">
<failure message="Expected true but was false"/>
</testcase>
<testcase classname="com.example.tests.MyTestClass" name="testMethod3" time="0.01"/>
</testsuite>
এখানে:
1
failure এবং 0
error রয়েছে।Code Coverage হল একটি মেট্রিক যা কোডের কতটা অংশ টেস্ট করা হয়েছে তা নির্দেশ করে। Apache ANT নিজে থেকে কোড কভারেজ তৈরি করতে পারে না, তবে Cobertura, JaCoCo এবং Emma এর মতো টুলগুলির সাহায্যে এটি করা সম্ভব।
JaCoCo হল একটি জনপ্রিয় কোড কভারেজ টুল যা ANT এর মাধ্যমে ইন্টিগ্রেট করা যায়। নিচে JaCoCo ব্যবহার করে কভারেজ রিপোর্ট তৈরি করার উদাহরণ দেওয়া হল:
lib/
ফোল্ডারে রাখা উচিত।<project name="CodeCoverageExample" default="run-tests-with-coverage">
<!-- ক্লাসপাথ সেটআপ -->
<path id="test.classpath">
<fileset dir="lib">
<include name="jacocoant-0.8.7.jar"/>
<include name="*.jar"/>
</fileset>
</path>
<!-- টাস্কের জন্য JaCoCo কভারেজ রিপোর্ট -->
<target name="run-tests-with-coverage">
<!-- JaCoCo কভারেজ ডেটা সংগ্রহ করা -->
<taskdef name="jacoco" classname="org.jacoco.ant.Task">
<classpath refid="test.classpath"/>
</taskdef>
<!-- JaCoCo টাস্ক চালানো -->
<jacoco>
<exec>
<classpath refid="test.classpath"/>
<junit printsummary="true">
<test name="com.example.tests.MyTestClass"/>
</junit>
</exec>
<!-- কভারেজ রিপোর্ট তৈরি করা -->
<report>
<html destdir="coverage-reports"/>
<xml destfile="coverage-reports/coverage.xml"/>
</report>
</jacoco>
</target>
</project>
এখানে:
taskdef
ব্যবহার করে JaCoCo টাস্ক সংজ্ঞায়িত করা হয়েছে।<exec>
টাস্কটি টেস্ট চালাবে এবং কভারেজ ডেটা সংগ্রহ করবে।<report>
টাস্কটি কভারেজ রিপোর্ট তৈরি করবে। html
ফরম্যাটে রিপোর্ট একটি নির্দিষ্ট ডিরেক্টরিতে এবং xml
ফরম্যাটে অন্য একটি ফাইল তৈরি হবে।JaCoCo HTML রিপোর্ট দেখতে নিচের মতো আউটপুট পেতে পারেন:
File Structure:
coverage-reports/
index.html --> কভারেজ রিপোর্টের মূল পৃষ্ঠা
...
<coverage branchRate="0.5" lineRate="0.8">
<package name="com.example.tests">
<class name="MyTestClass" lineRate="0.9" branchRate="0.75">
<method name="testMethod1" desc="()V" line="10" />
<method name="testMethod2" desc="()V" line="20" />
<!-- আরও মেথড ও লাইন তথ্য -->
</class>
</package>
</coverage>
এখানে:
Emma হল আরেকটি টুল যা ANT এর মাধ্যমে কোড কভারেজ রিপোর্ট তৈরি করতে ব্যবহৃত হয়। এটি JaCoCo-এর মতো একইভাবে কাজ করে তবে কনফিগারেশন এবং রিপোর্ট ফরম্যাট কিছুটা আলাদা।
<project name="EmmaCoverageExample" default="run-tests-with-coverage">
<taskdef name="emma" classname="com.vladium.emma.ant.Task" classpath="path_to_emma_libs"/>
<target name="run-tests-with-coverage">
<emma enabled="true" action="coverage">
<junit printsummary="true">
<test name="com.example.tests.MyTestClass"/>
</junit>
</emma>
<emma enabled="true" action="report" destfile="coverage-report">
<html/>
</emma>
</target>
</project>
এখানে:
emma
টাস্কটি Emma টুলের সাহায্যে কোড কভারেজ রিপোর্ট তৈরি করবে।action="coverage"
কোড কভারেজ ডেটা সংগ্রহ করবে।action="report"
রিপোর্ট তৈরি করবে, যেখানে html
ফরম্যাটে রিপোর্ট তৈরি হবে।Apache ANT ব্যবহার করে আপনি JUnit টেস্ট রিপোর্ট এবং code coverage রিপোর্ট তৈরি করতে পারেন। JUnit টাস্ক ব্যবহার করে সহজেই টেস্ট রিপোর্ট তৈরি করা যায়, যেখানে JaCoCo বা Emma টুলের মাধ্যমে কোড কভারেজ রিপোর্ট তৈরি করা সম্ভব। JaCoCo একটি জনপ্রিয় টুল যা ANT-এর সাথে সহজে ইন্টিগ্রেট করা যায় এবং এটি HTML ও XML ফরম্যাটে কভারেজ রিপোর্ট তৈরি করতে সাহায্য করে।
common.read_more